package test.beast;


import java.util.ArrayList;
import java.util.List;

import beast.evolution.alignment.Alignment;
import beast.evolution.alignment.Sequence;
import beast.evolution.tree.Tree;
import beast.util.TreeParser;
import junit.framework.TestCase;


public class BEASTTestCase extends TestCase {
    public static final double PRECISION = 1e-6;

    public Alignment getFourTaxaNoData() throws Exception {
        Sequence a = new Sequence("A", "A");
        Sequence b = new Sequence("B", "A");
        Sequence c = new Sequence("C", "A");
        Sequence d = new Sequence("D", "A");

        Alignment data = new Alignment();
        data.initByName("sequence", a, "sequence", b, "sequence", c, "sequence", d, "dataType", "nucleotide");
        return data;
    }

    static public Tree getTree(Alignment data, String tree) throws Exception {
        TreeParser t = new TreeParser();
        t.initByName("taxa", data,
                "newick", tree,
                "IsLabelledNewick", true);
        return t;
    }

    static public Alignment getAlignment() throws Exception {
        Sequence human = new Sequence("human", "AGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGGAGCTTAAACCCCCTTATTTCTACTAGGACTATGAGAATCGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCGTACTAAGAAATTTAGGTTAAATACAGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTG-CAATACTTAATTTCTGTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGACCAATGGGACTTAAACCCACAAACACTTAGTTAACAGCTAAGCACCCTAATCAAC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAA-TCACCTCGGAGCTTGGTAAAAAGAGGCCTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCCAAAGCTGGTTTCAAGCCAACCCCATGGCCTCCATGACTTTTTCAAAAGGTATTAGAAAAACCATTTCATAACTTTGTCAAAGTTAAATTATAGGCT-AAATCCTATATATCTTA-CACTGTAAAGCTAACTTAGCATTAACCTTTTAAGTTAAAGATTAAGAGAACCAACACCTCTTTACAGTGA");
        Sequence chimp = new Sequence("chimp", "AGAAATATGTCTGATAAAAGAATTACTTTGATAGAGTAAATAATAGGAGTTCAAATCCCCTTATTTCTACTAGGACTATAAGAATCGAACTCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTACACCCTTCCCGTACTAAGAAATTTAGGTTAAGCACAGACCAAGAGCCTTCAAAGCCCTCAGCAAGTTA-CAATACTTAATTTCTGTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATTAATGGGACTTAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAATCAAC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAA-TCACCTCAGAGCTTGGTAAAAAGAGGCTTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCTAAAGCTGGTTTCAAGCCAACCCCATGACCTCCATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAAGTTAAATTACAGGTT-AACCCCCGTATATCTTA-CACTGTAAAGCTAACCTAGCATTAACCTTTTAAGTTAAAGATTAAGAGGACCGACACCTCTTTACAGTGA");
        Sequence bonobo = new Sequence("bonobo", "AGAAATATGTCTGATAAAAGAATTACTTTGATAGAGTAAATAATAGGAGTTTAAATCCCCTTATTTCTACTAGGACTATGAGAGTCGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCGTACTAAGAAATTTAGGTTAAACACAGACCAAGAGCCTTCAAAGCTCTCAGTAAGTTA-CAATACTTAATTTCTGTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATTAATGGGACTTAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAATCAGC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTTGAATTTGCAATTCAATATGAAAA-TCACCTCAGAGCTTGGTAAAAAGAGGCTTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCTAAAGCTGGTTTCAAGCCAACCCCATGACCCCCATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAAGTTAAATTACAGGTT-AAACCCCGTATATCTTA-CACTGTAAAGCTAACCTAGCATTAACCTTTTAAGTTAAAGATTAAGAGGACCAACACCTCTTTACAGTGA");
        Sequence gorilla = new Sequence("gorilla", "AGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGAGGTTTAAACCCCCTTATTTCTACTAGGACTATGAGAATTGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTGTCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTCACATCCTTCCCGTACTAAGAAATTTAGGTTAAACATAGACCAAGAGCCTTCAAAGCCCTTAGTAAGTTA-CAACACTTAATTTCTGTAAGGACTGCAAAACCCTACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATCAATGGGACTCAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAGTCAAC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAT-TCACCTCGGAGCTTGGTAAAAAGAGGCCCAGCCTCTGTCTTTAGATTTACAGTCCAATGCCTTA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCCAAAGCTGGTTTCAAGCCAACCCCATGACCTTCATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAGGTTAAATTACGGGTT-AAACCCCGTATATCTTA-CACTGTAAAGCTAACCTAGCGTTAACCTTTTAAGTTAAAGATTAAGAGTATCGGCACCTCTTTGCAGTGA");
        Sequence orangutan = new Sequence("orangutan", "AGAAATATGTCTGACAAAAGAGTTACTTTGATAGAGTAAAAAATAGAGGTCTAAATCCCCTTATTTCTACTAGGACTATGGGAATTGAACCCACCCCTGAGAATCCAAAATTCTCCGTGCCACCCATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTACACCCTTCCCGTACTAAGAAATTTAGGTTA--CACAGACCAAGAGCCTTCAAAGCCCTCAGCAAGTCA-CAGCACTTAATTTCTGTAAGGACTGCAAAACCCCACTTTGCATCAACTGAGCGCAAATCAGCCACTTTAATTAAGCTAAGCCCTCCTAGACCGATGGGACTTAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAGTCAAT-TGGCTTCAGTCCAAAGCCCCGGCAGGCCTTAAAGCTGCTCCTTCGAATTTGCAATTCAACATGACAA-TCACCTCAGGGCTTGGTAAAAAGAGGTCTGACCCCTGTTCTTAGATTTACAGCCTAATGCCTTAACTCGGCCATTTTACCGCAAAAAAGGAAGGAATCGAACCTCCTAAAGCTGGTTTCAAGCCAACCCCATAACCCCCATGACTTTTTCAAAAGGTACTAGAAAAACCATTTCGTAACTTTGTCAAAGTTAAATTACAGGTC-AGACCCTGTGTATCTTA-CATTGCAAAGCTAACCTAGCATTAACCTTTTAAGTTAAAGACTAAGAGAACCAGCCTCTCTTTGCAATGA");
        Sequence siamang = new Sequence("siamang", "AGAAATACGTCTGACGAAAGAGTTACTTTGATAGAGTAAATAACAGGGGTTTAAATCCCCTTATTTCTACTAGAACCATAGGAGTCGAACCCATCCTTGAGAATCCAAAACTCTCCGTGCCACCCGTCGCACCCTGTTCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCATACTAAGAAATTTAGGTTAAACACAGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTAACAAAACTTAATTTCTGCAAGGGCTGCAAAACCCTACTTTGCATCAACCGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATCGATGGGACTTAAACCCATAAAAATTTAGTTAACAGCTAAACACCCTAAACAACCTGGCTTCAATCTAAAGCCCCGGCAGA-GTTGAAGCTGCTTCTTTGAACTTGCAATTCAACGTGAAAAATCACTTCGGAGCTTGGCAAAAAGAGGTTTCACCTCTGTCCTTAGATTTACAGTCTAATGCTTTA-CTCAGCCACTTTACCACAAAAAAGGAAGGAATCGAACCCTCTAAAACCGGTTTCAAGCCAGCCCCATAACCTTTATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAAGTTAAATCACAGGTCCAAACCCCGTATATCTTATCACTGTAGAGCTAGACCAGCATTAACCTTTTAAGTTAAAGACTAAGAGAACTACCGCCTCTTTACAGTGA");

        Alignment data = new Alignment();
        data.initByName("sequence", human, "sequence", chimp, "sequence", bonobo, "sequence", gorilla, "sequence", orangutan, "sequence", siamang,
                "dataType", "nucleotide"
        );
        return data;
    }

    static public Sequence German_ST;
    static public Sequence Dutch_List;
    static public Sequence English_ST;
    static public Sequence French;
    static public Sequence Italian;
    static public Sequence Spanish;

    static {
        try {
            German_ST = new Sequence("German_ST", "              1000000010000000000000000000000001000000000000000000000000100000000000000000100000000000000000000000000000000000000001000000000000000000000000000000010000000000000000000001000000000000000000000000000000000000000000000000000000000001010000000000000000000000000000000000000100000000000000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000001000000000000000000100000000000000000000000000000010000000000000000000000010000000000000000000010000000000000000000000010000000???????????????????100000000000000000000000100000000000000000000001000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000010000000000000000000000000000010000000000000000000000001000000000000000000000000000000000010000000000000100000000000000000000010000000000000000000000000000000010000000000000000000000000000000000000000000001000000000000000001000000000000100000000000000001000000000000000000000000000000000100000000000000000000000000000100001000000000000000000000000000000100000000000000001000000000000000100000000001000000000000000000000000000000001000000000000000001000000000000000000000000000000000001000000000000000000001000000000000000001000000000000100000000000000000000000000000000000100000000000000000000000000000000000000000010000100000000000000000000000100000000010000000010000000000000000000000010000000000000000000000100000000000010000000000000000000000000000010000000000000000000000100000000000000000101000000000000000000000000000000000000000000000010000010000000000010000000000000000000000000000000000100000000000000000000001000000000000000000001000000000010000000000000000000000000010000000000000000000000000000000001000000000000001000000000000000001000000000000000000001000000000000000000000100000000000000001000000000000000000000000100000000000000000000000000000000000000000000000000001100000000000000000000000000000010000000000000000000000000000000001000000000100000000010000000000000000000000010000000000000000001000000000000000000000000010000000000000000000000000000000000000001000000000000000000000001000000000000000000000000000000000010000000000000001000000000000010000000000000000100000000000000000000100000000000000010000000000000000010000000000000000000000000000100000000000000000000000000100000000000000000000000000000000000000100000000000001000000000000000000000010000000000000010000000000000000100000000000000000100000000000000000000000000000000000000000100000000000000???????????1000000000010000000000000000000000001000000000000000000010000100000000000000000000100000000000000000000000000000000000000000000000000100000000010000000000000000000000010000001000001000000000000001000001000000000000000001000001000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000000100000000000000000000000000000000000000000010000000000000000000000000000000001000000000000000000000000001000000000000000000001000000000000000000000000000000010000000000000000000000000000000000010000000100000000000001000000000000000000000000000000100000000000000000000000000000000000001000000000000000000000000001000000000000000000000000000000000000010000000000000000000000000000010000000010000000000000000000000010000000000000000000000000000000000000000100000000000000000000000000000010000001000000000010000000000000000000000010000000000000000100000000000000100000000000000000000000010000000000000000000000001000000000000000000000100000000000000001000000000000000000010000000000000000000000010000000000000000000100000000000000000000000000000000000010000000000000000000000000000000000100000000000000100000000000000000000000000000000000000000100000000000000000000001000000000000000000000000000000000000010000000000000000000100000000000000000000000000000000000010000000000000000000000000000000000000010000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000001000000000000000000000000010000000001000000000000000000000000000000000000000000000000001000000000000000000000000000000000000100000000000000000100000000000000000000000001000000001000000000000000000000000000001000000000000000000000000000000000000001000000000000000000000000010000100000000000000000001000000000000000000000000000001000000000000000000000001000000000000000000000000000001000000000000000000000000000100000000000000000000000000000000010000000000000000001000001010000000000000000000000000000000000000000000000000100000000000000000000000000001000000010000000001000000000000000000000000000000000000000000000010000000000000000101000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000010000000000000000000000000000010000000000010001000000000000000000000000000000100001000000001000000000000000010000000000000000000000001000000000000000100000000000000000000000000010100000000000000000001000000000000000010000000000000000000000000000000000000000100000000000000000000000010000000000000000000000000001000001000000000000000000000000000000100000000000000001000000000000000000000000010000000000000000000010000000000000000000001000000000000");
            Dutch_List = new Sequence("Dutch_List", "          1000000010000000000000000000000001000000000000000000000000100000000000000000100000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000001000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000100000000000000000010000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000001000000000000000000100000000000000000000000000000010000000000000000000000010000000000000000100010000000000000000001000000000000???????????????????1000000000000000000000001000000000000000000000010000000000000000000000000000000000000000000001000000000000000000000000000000100000000000000000000000100000000000000000000000000000000000000000001000000000010000000000000000000000000000000000100000000000001000000000000000000000001000000000000000000010000000000000000000000000000000000000000000000000000000010000000000000000010000000000001000000000000000010000000000000000000000000000000001000000000000000000000000000001000010000000000000000000000000000001000000000000000010000000000000001000000000010000000000000000000000000001000000000000000000000010000000000000000000000000000000000010000000000000100000000000000000000000010000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000100001000000000000000000000001000000000110000000000000000000000000000000100000100000000000000001000000000000100000000000000000000010000000100000000000000000000001000000000000000001010000000000000000000000000000000000000000000000??????10000000000010000000000000000000000000000000000100000000000000000000001000000000000000000001000000000000000000000000000000000000010000000000000000000000000000000001000000000100000000000000000000001000000000000000000001000000000000000000000100000000000000001000000000000000000000000100000000000000000000000000000000010000000000000100000000000000000000000000000000000010000000000000000000000000000000001000000000100000000010000000000000000000000000000000000000000001000000000000000000000000010000000000000000000000100000000000000000000000000000000000000011000001011000000000000000000000000110000000000000001000000000000010000000000010000000000000000000000000100000000000000010000000000000000010000000000000000000000000000100000000000001000000000000100000000000000000000000000000000000000100000000000001000000000000000000000010000000000000010000000000000000100000000000000000100000000000000000000000000000000000000000100000000000000???????????100000000001000000000000000000000000100000000000000000001000010000000010000000000010000000000000000000000000000000000000000000000000010000000001000000000000000000000001000000100000100000000000000100000100000000000000000100000100000000000100010000000000000000000000000000000000000001000000000000000000000000000001000000000000000000000000000000000000000000001000001000000000000000000000000000000000100000000000000000000000000100000000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000010000000000000000000000000000000000000000000010000000000000000010000000000000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000001000000001000000000000000000000001000000000000000000000000000000000000000100000000000000000000000000000000000000100000000001000000000000000000000001000000000000000010000000000000010000000000000000000000001000000000000000000000000100000000000000000000010000000000000000000100000000000000001000000000000000000000001000000000000000000010000000000000000000000000000000000001000000000000000000000000000000000010000000000000010000000000000000000000000000000000000000010000000000000000000000100000000000000000000000000110000000000000000000000000000010000000000000000000000010000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000100000000000000000000000001000000000100000000000000000000000000000000000000000000000000100000000000000000000000000001000000000000000000000000010000000000000000000000000100000000100000000000000000000000000000100000000000000000000000000100000000000000000000000000000000000001000000000000000000000000100000000000000000000000000000100000000000000000000000100000000000000000000000000000100000000000000000000000000010000000000000000000000000000000001000000000000000000010000101000000000010000000000000000000000000000000000000010000000000001000000000000000100000001000000000100000000000000000000000000000000000000000000001000000000000000010100000000000000000000000000000000000000000000000000000001000000000000000000001000000000000000000001000000000000000000000000000001000000000001000100000000000000000000000000000010000100000000100000000000000001000000000000000000000000100100000000000000000000000000000000000000001100000000000000000000100000000000000001000000000000000000000010000000000000000000000000000000000000000001000000000000000000000000000100000000000000000000000010000000000000000000000000000100000000000000000000000001000000000000000000001000000000000000000000?????????????");
            English_ST = new Sequence("English_ST", "             1000000010000000000000000000000001000000000000000000000000000000000000000000100000000000000000000000000000000000000100000000000000000000001000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000100000100000000000000000000000000000000000001000000000000000010000000000000000100000000000000000000001000000000000???????????????????0000000000000100000000001000000000000000000000000000000000000000001000000000000000000000000000000000000000000000010000000000100000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000100000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000010000000000001000000000000000100000000000000000000000000000000000000000000010000000000000000001000010000000000000000000000000000001000000000000000010000000000000001000000000010000000000000000000000000001000000000000000000000010000000000000000000000000000000000010000000000000100000000000000000000000010000000000000000100000000000000000000000001000000000000000000000000000000000000000000000000100001000000000000000000000001000000000100010000000000000000000000000000100000000000000000000000000000000000100000000000000000000000000000000000000000100000000001000000000000000001010000000000000000000000000000000000000000000000??????1000000000001000000000000000000000000000000000010000000000000000000000100000000000000000000000000000000010000000000000000000000001000000000000000000000000000000000100000000010000000000000000000000100000000000000000000100000000000000000000010000000000000000000000010000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000?????????0100000000000000010000000000000000000000000000000000000000100000000000000000000010000000000000000000000000000000000001000000000000000000000000001000000000000000000000000100000000000000000000000001000000000100000000000000000000000000000000000000000100000000000000000000001000000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000000000000100000000000001000000000000000000000010000000000000010000000000000000100000000000000000000000100000000000000000000000000000000000000001000000000???????????1000000000000000000000000000000000001000000000000000000010000000000000010000000000100000000000000000000000000000000000000000000000000000000000010000000000000000000000010000001000001000000000000001000001000000000000000001000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000001000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000010000000010000000000000000000000010000000000000000000000000000000000000000100000000000000000000000000000000000001000000000010000000000000000000000010000000000000000000010000000000100000000000000000000000000100000000000000000000001000000000000000000000100000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000001000000000000001000000000000000000000000001000000000000000000000000000000000001000000000000001000000000000000000000000001000000000000000000000000000000100000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000000000001000000000000000000000000010000000001000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000010000000100000000000000000000000001000000001000000000000000000000000000001000000000000000000000000000000000000100000000000000000000000000010000000000000000000000001000000000000000000000000000000000000000000000000000001000000000000000000000000000001000000000000000000000000000100000000000000000000000000000000010000000000000000001000001000000000000000001000000000000000000000000000000000000000100000000000000000000001000000010000000000100000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000010000000000000000000000000000010000000000010000000000100000000000000000000000100001000000001000000000000000010000000000000000000000001001000000000000000000000000000100000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001000000000000000000000000000001000000000000000000000000000001000000000000000000000000000001000000000000000001000000000000000000000000010000000000000000000010000000000000000000001000000000000");
            French = new Sequence("French", "              10000000001000000000000000000000000001000000000000000000000000100000000000000000100000000000000000000000000000000001000000000000000000000000100000000000000000000000000000000100000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000010000000000000000000000000000000010000000000000000000000001000000000000000000100000000000000000000000000000010000000000000000000000001000000000001000000000000000000000000100000000001000000100001000000000000000001000000000000000000000000000100000000000000000010000000000000000000000000000000000000010000000000000000000000000000010000000000000000000010000000000000000000000000000000010000000000000000000000000001000000000000000000000000000001000000001000000000000000000000000000000000001000000000000000000000100000000000000000000000000000000000000000000001000000000000000000100000000000000010000000000000100000000000000000000000000000000000100000000000000000000000000100000000100000000000000000000000000000010000000000001000000000000000100000000000000000000000000000000000000000000000010000000000000000000100000000000000000000000000001000000000000000100000100000000000000000010000000000000010000000000000000000000000000000000000000000000100000000000000000000000000010000000010000000000000000000100000000010001000000000000000000000000000000010000000000000000000100000000000000010000000000000000000000100000000000000000000000000100000000000000000100000010000000000000000000010000000000000000000010000001000000000000001000000000000000000000000000000000010000000000000000000000010000000000000000000010000000000000000000000000000000000000100000000000000000000000000000001000000001000000000000000000000000000000100000000000000000010000000000000100000000000000000000000000000100000000000100010000000010000000000000000000000000000000000000000000000001000000000000000000000000000100000000000000000000000000001000000000100000000000010000000000000000000000010000000000000000000000000000000000000000000001000000000000000000000001000000000000000000000000000000000001000000100000000000000000010000000000000000000000001000000000001000000000000000010000000000000000000000000010000000000010000000000000000000000000001000000000000000000000000100000000000000000000000000000010000000000000000000000000001000000000000000001000000000000000000010000000000000000001000000000000010000000000000000000000010000000000000000000000000000000000000000000010000001000000001000000000000001000000000000000000000000010000000000000010000000000010000000000000000000010000000000000000000000000000000000000000000100000000000000000000000000000000010000001000001000000000000001000000000100000000000001000000010000000000000000100000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000000001000000000000000000000000000000001000000000000000000010000000000000000000000001000000000000000000000000100000000000000000000000000000000000000100000000000000000000010000000000000000000000000000000000000000001000000000000000000001000000000000000000001000000000000000000000000010000000010000000000000000000000000001000000000000000000000000000000000000000010000000000000000000000000010000000000000000000100000000000000000000010000000000000000000010000000000000000010000000000000000000100000000000000000000000010000000000000000000100000000000000001000000000000000000000010000000000000000000000100000000000000000000000010000000000000000000000000000000000000000100000000000000000000001000000000000000001000000000000000000000000000000000000000000100000000000000000001000000000000000000010000000000000000000000000000000000000001000000000000000000000000100000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000100000000000000000000000000000000000000000000000100000000000000000000000010000000000000000000000000100000000000000000000000001000000000000000000000000000010000000000010000000000000000000000000000100000000000000000000000000000000000110000000000000000000000100000000000000000000000001000000000000000000000000000000000000000000100000000000000000100000000000000000000000001000000000000000000000000000000010010100000000000001000001000000001000000000000000000000000000000000000000000010000000000000000000000000001000000010000000000001000000000000000000000000000000100000000000000000000000000000100001000000000000000000000000000000000010000000000000000000000000000000000000000010000000000000000000000100000000000000000000000000010000000010000000100000000000000000000000000100001000000001000000000000000000000100000000000000000001000000100000000000000000000000000000000000000011000000000000000001000000000000000000001000000000000000000000000000000000000010000000000000000000000000010000000000000000000000000000010000000000000000000100000000000000000000000000001000000000000000000000000000001000000000000000000000100000000000000001000000000000");
            Italian = new Sequence("Italian", "             10000000001000000000000000000000000001000000000000000000000000100000000000000000100000000000000000000000000000000001000000000000000000000000100000000000000000000000000000000000000000000000001000000000000000000000000000000000001000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000010000000000000000000000000000000010000000000000000000000001000000000000000000100000000000000000000000000000010000000000000000000000001000000000001000000000000000000000000100000000001100000000001000000000000000001000000000000000000010000000100000000000000000010000000000000000000000000000000000000010000000000000000000000000000010000000000000000000010000000000000000000000000000000010000000000000000000000000000000000000010000000000000000001000000001000000000000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000001000000000000000000100000000000000000010000000000000000000000010000000000000000000000100000000000000000000000000100000000100000000000000000000000000000010000000000001000000000000000100000000000001000000000000000000000000000000000010000000000000000000100000000000000000000000000001000000000000000001000000000000000000000010000000000000010000000000000000000000000000000000000000000000100000000000000000000000000010000000010000000000000000000100000000010000010000000000000000000000000000010100010000000000000100000000000000010000000000000000000000000010000000000000000000000100000000000000000100000010000000000000000000010000000000000000000010000001000000000000001000000000000000000000000000000000010000000000000000000000010000000000000000000000100000000000000000000000000000000000100000000010000000000000000000001000000001000000000000000000000000000000100000000000000010100000000000000100000000000000000000100000010000000000000100010000000010000000000000000000000000100000000000000001000000000000000000000000000000000100000000000000000000000000001000000000100000000000010000000000000000000000010000000000010000000000000000000000000000000001000000000000000000000001000000000000000000000000000000000001000000000000000000000000000001100000000000000000001010000000001000000000000000010000000000000000000000000010000000000010000000000000000000000010000000000000000000000000000100000000000000000000000100000000000000000000000000000000001000000000000000001000000000000000000010000000000000000001000000000000010000000000000000000001000000000000000000000000000000000000001000000000000???????????1000000000000001000000000000000000000000010000000000000010000000000010000000000000000000000000000000001000000000000000000000000000000100000000000000000000000000000000010000001000001000000000000001000000000100000000000001000000010000000000000000100000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000001000000000000000000000000000000001000000000000000000000100000000000000000000000000000000100000000000000000000001000000000000000000000000000000100000000000000000000010000000000000000000000000000000000000000000000010000000000000001000000000000000000001000000000000000000000000010000000010001000000000000000000000001000000000000000000000000000000000000000010000000000000000000000000010000000000000000000100000000000000000000010000000000000000000010000000000000001000000000000000000000100000000000000000000000010000000000000000000100000000000000001000000000000000000000010000000000000000000000100000000000000000000000000001000000000000000000000000000100000000100000000000000000000001000000000000000001000000000000010000000000000000000000000000100000000000000000001000000000000000000010000000100000000000000000000000000000100000000000000000000000000100000000000001000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000001000001000000000000000000000000010000000000000000100000000000000000000000000000000000000000000000100000000000000000000000010000000000000000000000000100000000000000000000000001000000000000000000000000000010000000000010000000000000000000000000000100000000000000000000000000000000000110000000000000000000000100000000000000000000000000001000000010000000000000000001000000000000000000000000000000001000000000000000000000001000000000000000000000000000000010010100000000000001000001000000001000000000000000000000000000000000000000000010000000000000000000000000001000000010000000000001000000000000000000000000000000000000000010000000000000000000100001000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000100000000000000000000000000010000000010000000000000000000010000000000000100001000000001000000000000000000000100000000000000000001000000100000000000000000000010000000000000000010000000000000000001000000000000000000001000000000000000000000000000000000000000000000001000000000000000100000000000000000000000000000000010000000000000000100000000000000000000000000001000000000000000000000000000001000000000000000000000100000000000000001000000000000");
            Spanish = new Sequence("Spanish", "             10000000001000000000000000000000000001000000000000000000000000100000000000000000100000000000000000000000000000000001000000000000000000000000100000000010000000000000000000000100000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000010000000000000000000000000000000010000000000000000000000001000000000000000000100000000000000000000000000000010000000000000000000000001000000000001000000000000000000000000100000000000000000000001000000000000000001000000000000000000010010000000000000000000001000000000000000000000000000000000000000010000000000000000000000000000010000000000000000000010000000000000000000000000000000010000000000000000000000001000000000000000000000000000000001000000001000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000001000100000000000000010100000000100000000000000000000000000000000000000100000000000000000000000000100000000100000000000000000000000000001000000000000001000000000000000100000000000001000000000000000000000000000000000001000000000000000000100000000000000000000000000001000000000000000001000000000000000000000010000000000000010000000000000000000000000000000000000000000000100000000000000000000000000010000000010000000000000000000100000000010001000000000000000000000000000000000000010000000000000100000000000000010000000000000000000000000010000000000000000000000100000000000000000100000010000000000000000000010000000000000000000010000001000000000000001000000000000000000000000000000000010000000000000000000000010000000000000000000000100000000000000000000000000000000000100000000010000000000000000000001000000001000000000000000000001000000000000000000000000010000000000000000100000000000000000000100000010000000000000100010000000010000000000000000000000000100000000000000000000000000000000000000000000000000100000000000000000000000000001001000000100000000000010000000000000000000000010000000000010000000000000000000000000000000001000000000000000000000001000000000000000000000000000000000001000000000000000000000100000000000000000000000000000010000000001000000000000000010000000000000000000000000010000000000010000000000000000000000000000000000000100000000010000000000000000000000000000100000000000000000000000000000000001000000000000000001000000000000000000000000100000000000001000000000000010000000000000000000001000000000000000000000000000000000000001000000000000001000000001000000000000001000000000000000000000000010000000000000010000100000010000000000000000000000000000000000000000000000100000000000000100100000000000000000000000000000000010000001000001000000000000001000000000100000000000001000000010000000000000000110000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000000001000000000000000000001000000000000100000000000000000010000000000000000000000000010000000000000000000000100000000000000000000000000000000000000100000000000000000000010000000000000000000000000000000000000000001000000000000000000001000000000000000000000000000000000000000000000010000000000000000001000000000000000001000000000000000000000000000000000000000000000000001000000000000000010000000000000000000100000000000000000000010000000000000000000010000000000010000000000000000000000000100000000000000000000000010000000000000000000100000000000000001001000000000000000000010000000000000000000000100000000000000000000010000000000000000000000000000000000100000000000000000000000000000001000000000000000001000000000000000000000000000000000000000000110000000000000000001000000000000000000010000000100000000000000000000000000000100000000000000000000000000100000000000010000000000000000000000000000100100000000000000000000100000000000000000000000000000100000000000000000000000000000000000000000000000000000010000000000000000000010000000000000000000100000000000000000000000000000000000000000000100000000000000000000000010000000000000000000000000000000000010000000000000001000000000000000000000000000010000000000010000000000000000000000000000100000000000001000000000000000000000110000000000000000000000100000000000000000000000001000000000000000000000000000000000000000000100000000000000001000000000000000000000000001000000000000000000000000000000010010100000000000001000001000000001000000000001000000000000000000000000000000000000000000000100000000000001000000010000000000001000000000000000000000000000001000000000010000000000000000000100001000000000000000000000000000001000000000000000100000000000000000000000000000010000000000000000000000100000000000000000000000000010000000010000000100000000000000000000000000100001000000001000000000000000000000100000000000000000001000000001000000000000000000010000000000000000010000000000000000001000000000000000000001000000000000000000000100000000000000000000000000000000000000000100000000000000000000000000001000000000000000000000100000000000000000000000000000000010000000000000000000000001000000000000000000100000000000000000001000000000000");
        } catch (Exception e) {
            // ignore: handle exception
        }
    }

    static public Alignment getBinaryAlignment() throws Exception {
        Alignment data = new Alignment();
        data.initByName("sequence", German_ST, "sequence", Dutch_List, "sequence", English_ST, "sequence", French, "sequence", Italian, "sequence", Spanish,
                "dataType", "binary"
        );
        return data;
    }

    static public Alignment getCovarionAlignment() throws Exception {
        Alignment data = new Alignment();
        data.initByName("sequence", German_ST, "sequence", Dutch_List, "sequence", English_ST, "sequence", French, "sequence", Italian, "sequence", Spanish,
                "dataType", "twoStateCovarion", "strip", true
        );
        return data;
    }


    static public Alignment getAminoAcidAlignment() throws Exception {
        Sequence Struthio_camelus = new Sequence("Struthio_camelus", "VKYPNTNEEGKEVVLPKILSPIGSDGVYSNELANIEYTNVSKAAAAAFATVDDYKPVPLDYMLDSKTSNKNNVVESSGTLRHFGK");
        Sequence Rhea_americana = new Sequence("Rhea_americana", "VKYPNTNEEGKEVLLPEILNPVGTDGVYSNELANIEYTNVAKDAAAAFATVDDHKPVSLEYMLDSKTSNKDNVVESNGTLSHFGK");
        Sequence Pterocnemia_pennata = new Sequence("Pterocnemia_pennata", "VKYPNTNEEGKEVLLPEILNPVGADGVYSNELANIEYTNVSKDHDEVFATVDDHKPVSLEYMLDSKTSNKDNVVESNGTLSHFGK");
        Alignment data = new Alignment();
        data.initByName("sequence", Struthio_camelus, "sequence", Rhea_americana, "sequence", Pterocnemia_pennata,
                "dataType", "aminoacid"
        );
        return data;
    }

    static public Alignment getAscertainedAlignment() throws Exception {
        // same as getAlignment, but with first four sites the constant sites ACTG
        List<Sequence> sequences = new ArrayList<Sequence>();
        sequences.add(new Sequence("human", "ACTGAGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGGAGCTTAAACCCCCTTATTTCTACTAGGACTATGAGAATCGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCGTACTAAGAAATTTAGGTTAAATACAGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTG-CAATACTTAATTTCTGTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGACCAATGGGACTTAAACCCACAAACACTTAGTTAACAGCTAAGCACCCTAATCAAC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAA-TCACCTCGGAGCTTGGTAAAAAGAGGCCTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCCAAAGCTGGTTTCAAGCCAACCCCATGGCCTCCATGACTTTTTCAAAAGGTATTAGAAAAACCATTTCATAACTTTGTCAAAGTTAAATTATAGGCT-AAATCCTATATATCTTA-CACTGTAAAGCTAACTTAGCATTAACCTTTTAAGTTAAAGATTAAGAGAACCAACACCTCTTTACAGTGA"));
        sequences.add(new Sequence("chimp", "ACTGAGAAATATGTCTGATAAAAGAATTACTTTGATAGAGTAAATAATAGGAGTTCAAATCCCCTTATTTCTACTAGGACTATAAGAATCGAACTCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTACACCCTTCCCGTACTAAGAAATTTAGGTTAAGCACAGACCAAGAGCCTTCAAAGCCCTCAGCAAGTTA-CAATACTTAATTTCTGTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATTAATGGGACTTAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAATCAAC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAA-TCACCTCAGAGCTTGGTAAAAAGAGGCTTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCTAAAGCTGGTTTCAAGCCAACCCCATGACCTCCATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAAGTTAAATTACAGGTT-AACCCCCGTATATCTTA-CACTGTAAAGCTAACCTAGCATTAACCTTTTAAGTTAAAGATTAAGAGGACCGACACCTCTTTACAGTGA"));
        sequences.add(new Sequence("bonobo", "ACTGAGAAATATGTCTGATAAAAGAATTACTTTGATAGAGTAAATAATAGGAGTTTAAATCCCCTTATTTCTACTAGGACTATGAGAGTCGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCGTACTAAGAAATTTAGGTTAAACACAGACCAAGAGCCTTCAAAGCTCTCAGTAAGTTA-CAATACTTAATTTCTGTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATTAATGGGACTTAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAATCAGC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTTGAATTTGCAATTCAATATGAAAA-TCACCTCAGAGCTTGGTAAAAAGAGGCTTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCTAAAGCTGGTTTCAAGCCAACCCCATGACCCCCATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAAGTTAAATTACAGGTT-AAACCCCGTATATCTTA-CACTGTAAAGCTAACCTAGCATTAACCTTTTAAGTTAAAGATTAAGAGGACCAACACCTCTTTACAGTGA"));
        sequences.add(new Sequence("gorilla", "ACTGAGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGAGGTTTAAACCCCCTTATTTCTACTAGGACTATGAGAATTGAACCCATCCCTGAGAATCCAAAATTCTCCGTGCCACCTGTCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTCACATCCTTCCCGTACTAAGAAATTTAGGTTAAACATAGACCAAGAGCCTTCAAAGCCCTTAGTAAGTTA-CAACACTTAATTTCTGTAAGGACTGCAAAACCCTACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATCAATGGGACTCAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAGTCAAC-TGGCTTCAATCTAAAGCCCCGGCAGG-TTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAT-TCACCTCGGAGCTTGGTAAAAAGAGGCCCAGCCTCTGTCTTTAGATTTACAGTCCAATGCCTTA-CTCAGCCATTTTACCACAAAAAAGGAAGGAATCGAACCCCCCAAAGCTGGTTTCAAGCCAACCCCATGACCTTCATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAGGTTAAATTACGGGTT-AAACCCCGTATATCTTA-CACTGTAAAGCTAACCTAGCGTTAACCTTTTAAGTTAAAGATTAAGAGTATCGGCACCTCTTTGCAGTGA"));
        sequences.add(new Sequence("orangutan", "ACTGAGAAATATGTCTGACAAAAGAGTTACTTTGATAGAGTAAAAAATAGAGGTCTAAATCCCCTTATTTCTACTAGGACTATGGGAATTGAACCCACCCCTGAGAATCCAAAATTCTCCGTGCCACCCATCACACCCCATCCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTACACCCTTCCCGTACTAAGAAATTTAGGTTA--CACAGACCAAGAGCCTTCAAAGCCCTCAGCAAGTCA-CAGCACTTAATTTCTGTAAGGACTGCAAAACCCCACTTTGCATCAACTGAGCGCAAATCAGCCACTTTAATTAAGCTAAGCCCTCCTAGACCGATGGGACTTAAACCCACAAACATTTAGTTAACAGCTAAACACCCTAGTCAAT-TGGCTTCAGTCCAAAGCCCCGGCAGGCCTTAAAGCTGCTCCTTCGAATTTGCAATTCAACATGACAA-TCACCTCAGGGCTTGGTAAAAAGAGGTCTGACCCCTGTTCTTAGATTTACAGCCTAATGCCTTAACTCGGCCATTTTACCGCAAAAAAGGAAGGAATCGAACCTCCTAAAGCTGGTTTCAAGCCAACCCCATAACCCCCATGACTTTTTCAAAAGGTACTAGAAAAACCATTTCGTAACTTTGTCAAAGTTAAATTACAGGTC-AGACCCTGTGTATCTTA-CATTGCAAAGCTAACCTAGCATTAACCTTTTAAGTTAAAGACTAAGAGAACCAGCCTCTCTTTGCAATGA"));
        sequences.add(new Sequence("siamang", "ACTGAGAAATACGTCTGACGAAAGAGTTACTTTGATAGAGTAAATAACAGGGGTTTAAATCCCCTTATTTCTACTAGAACCATAGGAGTCGAACCCATCCTTGAGAATCCAAAACTCTCCGTGCCACCCGTCGCACCCTGTTCTAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTGGTTATACCCTTCCCATACTAAGAAATTTAGGTTAAACACAGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTAACAAAACTTAATTTCTGCAAGGGCTGCAAAACCCTACTTTGCATCAACCGAACGCAAATCAGCCACTTTAATTAAGCTAAGCCCTTCTAGATCGATGGGACTTAAACCCATAAAAATTTAGTTAACAGCTAAACACCCTAAACAACCTGGCTTCAATCTAAAGCCCCGGCAGA-GTTGAAGCTGCTTCTTTGAACTTGCAATTCAACGTGAAAAATCACTTCGGAGCTTGGCAAAAAGAGGTTTCACCTCTGTCCTTAGATTTACAGTCTAATGCTTTA-CTCAGCCACTTTACCACAAAAAAGGAAGGAATCGAACCCTCTAAAACCGGTTTCAAGCCAGCCCCATAACCTTTATGACTTTTTCAAAAGATATTAGAAAAACTATTTCATAACTTTGTCAAAGTTAAATCACAGGTCCAAACCCCGTATATCTTATCACTGTAGAGCTAGACCAGCATTAACCTTTTAAGTTAAAGACTAAGAGAACTACCGCCTCTTTACAGTGA"));
        Alignment data = null;
        data = new Alignment();
        for (Sequence sequence : sequences) {
            data.sequenceInput.setValue(sequence, data);
        }
        //data.m_nStateCount.setValue(4, data);
        data.dataTypeInput.setValue("nucleotide", data);
        data.excludefromInput.setValue(0, data);
        data.excludetoInput.setValue(4, data);
        data.excludeeveryInput.setValue(1, data);
        data.isAscertainedInput.setValue(true, data);
        data.initAndValidate();

        return data;
    }

    static public Tree getTree(Alignment data) throws Exception {
        TreeParser tree = new TreeParser();
        tree.initByName("taxa", data,
                "newick", "((((human:0.024003,(chimp:0.010772,bonobo:0.010772):0.013231):0.012035,gorilla:0.036038):0.033087000000000005,orangutan:0.069125):0.030456999999999998,siamang:0.099582);",
                "IsLabelledNewick", true);
        return tree;
    }

    static public Tree getAminoAcidTree(Alignment data) throws Exception {
        TreeParser tree = new TreeParser();
        tree.initByName("taxa", data,
                "newick", "(Struthio_camelus:0.09413496891819266,(Rhea_americana:0.03667415617018579,Pterocnemia_pennata:0.03667415617018579):0.05746081274800687);",
                "IsLabelledNewick", true);
        return tree;
    }
}